<?php

/*
 * Condições do teste:
 *
 * No início do teste:
 * - Considerar que o email andrecastelo@gmail.com está associado com a senha 123456
 *
 *
*/

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
require_once 'Conexao.php';

class TesteCadastroCampeonato extends PHPUnit_Extensions_SeleniumTestCase {

   /* protected $receivedCon;
    protected $result;
    protected $insercaoBD = "INSERT INTO campeonato(nome) VALUES('meucampeonato - 2011')";
    protected $remocaoBD = "DELETE FROM campeonato
        WHERE nome='meucampeonato - 2011' or nome='sucesso - 2010'";*/

    protected function setUp() {
       /* $this->receivedCon = new Conexao();
        $this->receivedCon->conect();
        echo "conexao bem sucedida.\n";

        $this->result = $this->receivedCon->query($this->insercaoBD);
        echo "Operacao no banco de dados bem sucedida.\n";*/

        //$this->receivedCon->limpar_memoria($this->result);
        //echo "Memória limpa com sucesso.\n";

        $this->setBrowser("*firefox");
        $this->setBrowserUrl("http://localhost");
    }


    protected function tearDown() {

        /*$this->receivedCon->query($this->remocaoBD);
        echo "Banco deletado com sucesso.\n";
        $this->receivedCon->close();
        echo "Conexao finalizada com sucesso.\n\n";*/

    }

    public function testCamposEmBranco() {
        $this->open("http://localhost/usuario/log-on");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testCampoEmailEmBranco() {
        $this->open("http://localhost/usuario/log-on");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        $this->type("senha", "123456");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testCampoSenhaEmBranco() {
        $this->open("http://localhost/usuario/log-on");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        $this->type("email", "andrecastelo@gmail.com");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testEmailInvalido() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andre@");
        $this->type("senha", "2010");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("não parece ser um endereço de e-mail válido."));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testSenhaInferiorSeisCaracteres() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andrecastelo@gmail.com");
        $this->type("senha", "2010");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O tamanho de"));
            $this->assertTrue($this->isTextPresent("é inferior a 6 caracteres"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testEmailOuSenhaInvalidos() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andrecastelo@gmail.com");
        $this->type("senha", "201000");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Endereço de email ou senha incorretos, tente novamente"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testEmailOuSenhaInvalidos1() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andrecastelo1@gmail.com");
        $this->type("senha", "123456");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Endereço de email ou senha incorretos, tente novamente"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }
	
	public function testEmailOuSenhaInvalidos3() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andrecastelo1@gmail.com");
        $this->type("senha", "1234&¨#&");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("contém caracteres que não são alfabéticos e nem dígitos"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }
    
    public function testLogOnComSucesso() {

        $this->open("http://localhost/usuario/log-on");
        $this->type("email", "andrecastelo@gmail.com");
        $this->type("senha", "123456");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->waitForTextPresent($this->isTextPresent("Bem vindo!"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }
}

?>